#ifndef _SYS_OPERATOR_H_
#define _SYS_OPERATOR_H_

#include "FanObj.h"
#include "SysTypes.h"

#define OPERATOR_VTABLE(self)   ((OperatorVTable*)((FanObj*)self)->vtable)


extern Type*    Operator_classType;
extern VTable*  Operator_classVTable;


/* [sys::Operator] Attributes */
struct Operator
{
  FanObj        super;
};


/* [sys::Operator] Virtual-table */
typedef struct OperatorVTable
{
  FanObjVTable  super;
} OperatorVTable;


/* [sys::Operator] Methods and fields */
Operator*       Operator_defVal(void);


/* [sys::Operator] Type-system functions */
Type*           Operator_initType(void);
VTable*         Operator_initVTable(void);
void            Operator_initStatic(void);


#endif
